package global

import (
	"gitee.com/swsk33/sclog"
	"github.com/spf13/viper"
	"os"
)

// Config 配置对象
type Config struct {
	// 认证配置
	Auth struct {
		// 用户名
		Username string `mapstructure:"username"`
		// 密码
		Password string `mapstructure:"password"`
	} `mapstructure:"auth"`
	// 下载配置
	Download struct {
		// 同时下载的文件数
		ParallelCount int `mapstructure:"parallel-count"`
		// 下载文件夹
		Folder string `mapstructure:"folder"`
		// 是否校验下载后的文件
		CheckFile bool `mapstructure:"check-file"`
	} `mapstructure:"download"`
}

// TotalConfig 全局的配置对象
var TotalConfig = new(Config)

func init() {
	// 初始化Viper配置
	viper.SetConfigName("config")
	viper.SetConfigType("yaml")
	viper.AddConfigPath(".")
	e := viper.ReadInConfig()
	if e != nil {
		sclog.ErrorLine("读取配置失败！")
		sclog.ErrorLine(e.Error())
		os.Exit(1)
	}
	// 反序列化配置
	e = viper.Unmarshal(&TotalConfig)
	if e != nil {
		sclog.ErrorLine("反序列化配置失败！")
		sclog.ErrorLine(e.Error())
		os.Exit(1)
	}
}